package main.java.Jdk8;

import java.util.Arrays;
import java.util.List;

public class StreamDemo03 {
    public static void main(String[] args) {
        //创建集合
        List<Integer> list1= Arrays.asList(1,2,3,4,5,6,7,8,9,10);
        //1.求集合中奇数的个数
        long count=list1.stream()
                //过滤出奇数
                .filter(x->x%2!=0)
                //统计个数
                .count();
        //输出奇数的个数
        System.out.println(count);
        //2.求集合中所有偶数的和
        //方案1-sum()
        //mapToInt()将集合中的元素转换为int类型
        int sum=list1.stream()
                //过滤出偶数
                .filter(x->x%2==0)
                //将流中的元素从 Integer 类型转换为 int 基本类型
                .mapToInt(x->x)
                //求和
                .sum();
        //输出偶数的和
        System.out.println(sum);//30
        //方案2-reduce()缩减操作
        sum=list1.stream()
                //过滤出偶数
                .filter(x->x%2==0)
                //这里的含义是累加操作，0表示初始值
                .reduce(0,(x,y)->x+y);
        //输出偶数的和
        System.out.println(sum);
    }
}
